function hire_init(){
    var email = $('mail');
    var tel = $('tel');
    var nombre = $('name');
    var cant = $('cant');
    var submit_button = $('submit_button');

    var name_ok = false;
    var email_ok = false;
    var cant_ok = false;
    var tel_ok = false;


    email.addEvent('blur',function(){
        validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
        strEmail = email.value;
        
        if(strEmail.search(validRegExp) == -1 || email.value.length < 1 || email.value.length > 128)
        {   
            email.highlight('#FF3333');
            email_ok = false;
            $('mail_tip').set('text','El email debe tener entre 1 y 128 caracteres, y debe ser una dirección válida');
        }
        else
        {
            email_ok = true;     
            $('mail_tip').set('text','');
        }
        if( name_ok && cant_ok && email_ok && tel_ok){
            submit_button.set('disabled',false);    
        } else {
            submit_button.set('disabled',true);    
        }
    });
    
    email.addEvent('keydown',function(){
        validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
        strEmail = email.value;
        
        if(strEmail.search(validRegExp) == -1 || email.value.length < 1 || email.value.length > 128)
        {   
            email_ok = false;
            if(email.value.length+1>128){
                return false;
            }
        }
        else
        {
            email_ok = true;     
        }
        if( name_ok && cant_ok && email_ok && tel_ok){
            submit_button.set('disabled',false);    
        } else {
            submit_button.set('disabled',true);    
        }
    });
    
    tel.addEvent('blur',function(){
        
        if(tel.value.length < 1 || tel.value.length > 50)
        {   
            tel.highlight('#FF3333');
            tel_ok = false;
            $('tel_tip').set('text','El teléfono es obligatorio');
        }
        else
        {
            tel_ok = true;     
            $('tel_tip').set('text','');
        }
        if( name_ok && cant_ok && email_ok && tel_ok){
            submit_button.set('disabled',false);    
        } else {
            submit_button.set('disabled',true);    
        }
    });
    
    tel.addEvent('keydown',function(){
        if(tel.value.length < 1 || tel.value.length > 50)
        {   
            tel_ok = false;
            if(tel.value.length+1>50){
                return false;
            }
        }
        else
        {
            tel_ok = true;     
        }
        if( name_ok && cant_ok && email_ok && tel_ok){
            submit_button.set('disabled',false);    
        } else {
            submit_button.set('disabled',true);    
        }
    });
    
    cant.addEvent('blur',function(){
        
        if(cant.value.length < 1 || cant.value.length > 50)
        {   
            cant.highlight('#FF3333');
            cant_ok = false;
            $('cant_tip').set('text','La cantidad es obligatoria');
        }
        else
        {
            cant_ok = true;     
            $('cant_tip').set('text','');
        }
        if( name_ok && cant_ok && email_ok && tel_ok){
            submit_button.set('disabled',false);    
        } else {
            submit_button.set('disabled',true);    
        }
    });
    
    cant.addEvent('keydown',function(key){
        if(only_nums(key)){
            if(cant.value.length < 1 || cant.value.length > 50)
            {   
                if(cant.value.length+1>50){
                    return false;
                }
            }
            else
            {
                cant_ok = true;     
            }
            if( name_ok && cant_ok && email_ok && tel_ok){
                submit_button.set('disabled',false);    
            } else {
                submit_button.set('disabled',true);    
            }
            $('cant_tip').set('text', '');
            return true;
        } else {
            $('cant_tip').set('text','Sólo se aceptan números');
            return false;
        }
    });
    
    nombre.addEvent('blur',function(){
        
        if(nombre.value.length < 1 || nombre.value.length > 100)
        {   
            nombre.highlight('#FF3333');
            name_ok = false;
            $('name_tip').set('text','El nombre es obligatorio');
        }
        else
        {
            name_ok = true;     
            $('name_tip').set('text','');
        }
        if( name_ok && cant_ok && email_ok && tel_ok){
            submit_button.set('disabled',false);    
        } else {
            submit_button.set('disabled',true);    
        }
    });
    
    nombre.addEvent('keydown',function(){
        if(nombre.value.length < 1 || nombre.value.length > 100)
        {   
            name_ok = false;
            if(nombre.value.length+1>100){
                return false;
            }
        }
        else
        {
            name_ok = true;     
        }
        if( name_ok && cant_ok && email_ok && tel_ok){
            submit_button.set('disabled',false);    
        } else {
            submit_button.set('disabled',true);    
        }
    });
    

    if(cant.value.length > 1){
        cant_ok = true;
    }
    email.fireEvent('keydown');
    tel.fireEvent('keydown');
    nombre.fireEvent('keydown');

}

function only_nums(key){    
    var numbers = [8, 48,49, 50, 51,52,53,54,55,56,96,97,98,99,100,101,102,103,104,105,9];
    for (i = 0; i < numbers.length; i++) {
        if(numbers[i] == key.code) {
            return true;
        }
    }
    return false;
}

function init(){
    hire_init();
}